# !/usr/bin/env python
# -*- coding:utf-8 -*-
# @FileName : HJ32.py
# @Time     : 2024/2/28 22:09
# @Author   : Robot-Zsj
"""
description:

Catcher是MCA国的情报员，他工作时发现敌国会用一些对称的密码进行通信，比如像这些ABBA，ABA，A，123321，
但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。比如进行下列变化ABBA->12ABBA,ABA->ABAKK,123321->512333214。

因为截获的串太长了，而且存在多种可能的情况（abaaab可看作是aba，或baaab的加密形式），Cathcer的工作量太大了，他只能向电脑高手求助，
你能帮Catcher找出最长的有效密码串吗？

输入：
输入一个字符串
ABBA

输出：
返回有效密码串的最大长度
4

这里其实就是字符串的最长公共子序列，可以参考longest_palindrome函数



"""


def longest_palindrome(s):
    if len(s) <= 1: return s
    i = minstart = 0
    maxl = 1
    while i < len(s):
        # 每轮遍历之前，先对当前最长回文子串的长度
        # 与以当前字符为中心可能得到的最长回文子串长度进行比较。
        """
        x x x x x x x x x
                    i  len(s)
        len(s) - i < maxl / 2
        """
        if len(s) - i < maxl / 2:
            break
        l = r = i
        """
        第二个需要注意的问题是在每个中心位置先向右扩展判断字符是否与中心字符相同，
        如果相同，则右指针向后移动。
        """
        while r < len(s) - 1 and s[r] == s[r + 1]:
            r += 1
        """
        在每轮遍历过程中，判断左指针和右指针指向的字符是否相同，
        如果相同，则继续向两侧扩展，如果不同，则停止扩展
        """
        while r < len(s) - 1 and l > 0 and s[l - 1] == s[r + 1]:
            r, l = r + 1, l - 1
        """
        每轮遍历过程中，要将以当前字符为中心点
        的最长回文子串和当前最长回文子串
        长度进行比较，然后更新
        """
        if r - l + 1 >= maxl:
            minstart, maxl = l, r - l + 1
        # 当前中心位置向后移动1
        i += 1
    return s[minstart:minstart + maxl]


def main():
    s = input()
    if len(s) <= 1: return len(s)
    i = 0
    maxl = 1
    while i < len(s):
        if len(s) - i < maxl / 2:
            break
        l = r = i
        while r < len(s) - 1 and s[r] == s[r + 1]:
            r += 1
        while r < len(s) - 1 and l > 0 and s[l - 1] == s[r + 1]:
            r, l = r + 1, l - 1
        if r - l + 1 >= maxl:
            maxl = r - l + 1
        i += 1
    print(maxl)


while True:
    try:
        main()
    except:
        break
